package com.ruge.user.service;

import com.ruge.core.response.Response;
import com.ruge.user.domain.request.BlobFollowRequest;
import com.ruge.user.domain.request.ListBlogRequest;
import com.ruge.user.domain.request.SavaBlogRequest;

/**
 * @author ruge.wu
 * @since 2022/2/9 15:01
 */
public interface BlogService {
    /**
     * 博客数据保存
     *
     * @param request {@link SavaBlogRequest}
     * @return {@link Response}
     */
    Response save(SavaBlogRequest request);

    /**
     * 博客数据删除
     *
     * @param blogId 博客数据id
     * @return {@link Response}
     */
    Response delete(Long blogId);

    /**
     * 新增推送或取消推送 源头为关注和取关
     *
     * @param request {@link BlobFollowRequest}
     * @return {@link Response}
     */
    Response pipline(BlobFollowRequest request);

    /**
     * feed数据查询
     *
     * @param request {@link ListBlogRequest}
     * @return {@link Response}
     */
    Response getMySub(ListBlogRequest request);
}
